The present invention relates to a storage system for storing data for use by computers in a computing system, and more particularly, to a storage system which employs a cluster configuration.
In recent years, the amount of data handled by computers has been dramatically increased, leading a tendency to increasingly higher capacities of storages for storing the data. An approach for reducing the management cost of a large capacity storage is implemented in a system design which relies on an intensive storage of a large amount of data on a single high-performance, highly reliable, and highly available large storage device, rather than a distributed storage of a large amount of data on multiple small storage devices. A smaller number of storage devices to be managed can result in a reduction in the management cost for the storage which would be required for maintenance, fault recovery and the like.
However, when a single storage system stores a large amount of data and is connected to a multiplicity of host computers, the storage system requires a larger number of control processors and disk devices mounted therein. Since these numerous control processors and disk devices must be associated with one another at a high speed, enormous challenges arise in a technical aspect as well as in respect of cost both in hardware and software for increasing the processing speed on an internal bus and a control memory, avoiding contentions among the control processors, and the like.
As disclosed in U.S. Pat. No. 6,256,740, the application of clustering to the storage may be contemplated for meeting the foregoing challenges to provide a large-scale and low-cost large storage.
A cluster storage system has a plurality of relatively small storage nodes interconnected through an interconnection mechanism such as a switch to implement a large capacity storage system through the clustering. While a variety of implementations can be seemingly applied to the cluster storage system, they are identical in that input/output requests received by a cluster storage system are distributed to storage nodes which contain devices associated with the respective input/output requests, so that each of the input/output requests is processed in each storage node associated therewith. Generally, each storage node is similar to a normal storage system in that it comprises a host interface, a disk device, control processors, memories, a control memory, a disk cache, and the like, and these components are coupled to one another through an internal network in the storage node. Each of the storage nodes processes the associated input/output request directed to the disk device using these internal components.
In this event, since the disk cache and control memory in each storage node are shared only among the control processors in the node, the cluster storage system can relax the performance requirements to the internal bus and memories. Further, a plurality of storage nodes may be coupled to create a cluster storage system which provides a storage capacity required by a certain computing system, thereby realizing a scalable storage system which has a variety of storage capacities from a small capacity to a large capacity. It should be noted that in a cluster storage system, control data and data stored in the disk devices are communicated among respective storage nodes through an interconnection mechanism in order to associate data among the disk devices for purposes of data duplication, internal data relocation, and the like.